package com.meituan.sdk.model.pms.message.addGuestdemandTask;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 新增客需消息和任务
* This file was automatically generated.
*/
@ApiMeta(
    path = "/pms/message/addGuestDemandTask",
    businessId = 57,
    apiVersion = "10006",
    apiName = "add_guestdemand_task",
    needAuth = true
)
public class AddGuestdemandTaskRequest implements MeituanRequest<AddGuestdemandTaskResponse> {
    /**
    * <p data-diff-id="ct-diff-id-d4f8c86c-0cfe-4ce9-8a5d-b6061ca7d229">酒店ID</p>
    */
    @NotNull(message = "hotelId不能为空")
    @SerializedName("hotelId")
    private Long hotelId;
    /**
    * <p data-diff-id="ct-diff-id-afbc3970-cd2c-4643-9c34-30ac90a4bdd3">客需场景：<strong><span style="color: #333">QingJie-清洁、WeiXiu-维修、XuZhu-续住、TuiFang-退房</span></strong></p>
    */
    @NotBlank(message = "scene不能为空")
    @SerializedName("scene")
    private String scene;
    /**
    * <p data-diff-id="ct-diff-id-e99e6cb6-1a9f-424f-a996-f1c74a427d90"><span style="color: rgba(0, 0, 0, 0.65)">接待单ID</span></p>
    */
    @NotNull(message = "checkinId不能为空")
    @SerializedName("checkinId")
    private Long checkinId;
    /**
    * <p data-diff-id="ct-diff-id-e4859c37-0c25-433c-8752-6d488be3657f">房间号</p>
    */
    @NotBlank(message = "roomNumber不能为空")
    @SerializedName("roomNumber")
    private String roomNumber;
    /**
    * <p data-diff-id="ct-diff-id-02eaeda7-cca6-4182-ac6b-b7f439498826"><span style="color: #333">来源：dianjing-电竞</span></p>
    */
    @NotBlank(message = "source不能为空")
    @SerializedName("source")
    private String source;
    /**
    * <p data-diff-id="ct-diff-id-e41376ed-c654-49e1-83ef-fa1bc241047d"><span style="color: rgb(51, 51, 51)">期望服务时间：00:00-00:00为立即服务，为空时为立即服务</span></p>
    */
    @SerializedName("expectServiceTime")
    private String expectServiceTime;
    /**
    * <p data-diff-id="ct-diff-id-95b8fe10-79d0-48f0-a857-a3efdf628094">外部服务ID，第三方客需服务ID</p>
    */
    @SerializedName("outServiceId")
    private String outServiceId;
    /**
    * <p data-diff-id="ct-diff-id-87a88439-dde2-4451-8051-0fb0e6c1ae52">客人服务备注</p>
    */
    @SerializedName("memo")
    private String memo;

    public Long getHotelId() {
        return hotelId;
    }
    public void setHotelId(Long hotelId) {
        this.hotelId = hotelId;
    }
    public String getScene() {
        return scene;
    }
    public void setScene(String scene) {
        this.scene = scene;
    }
    public Long getCheckinId() {
        return checkinId;
    }
    public void setCheckinId(Long checkinId) {
        this.checkinId = checkinId;
    }
    public String getRoomNumber() {
        return roomNumber;
    }
    public void setRoomNumber(String roomNumber) {
        this.roomNumber = roomNumber;
    }
    public String getSource() {
        return source;
    }
    public void setSource(String source) {
        this.source = source;
    }
    public String getExpectServiceTime() {
        return expectServiceTime;
    }
    public void setExpectServiceTime(String expectServiceTime) {
        this.expectServiceTime = expectServiceTime;
    }
    public String getOutServiceId() {
        return outServiceId;
    }
    public void setOutServiceId(String outServiceId) {
        this.outServiceId = outServiceId;
    }
    public String getMemo() {
        return memo;
    }
    public void setMemo(String memo) {
        this.memo = memo;
    }


    @Override
    public MeituanResponse<AddGuestdemandTaskResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<AddGuestdemandTaskResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "AddGuestdemandTaskRequest{" + "hotelId=" + hotelId + "," + "scene=" + scene + "," + "checkinId=" + checkinId + "," + "roomNumber=" + roomNumber + "," + "source=" + source + "," + "expectServiceTime=" + expectServiceTime + "," + "outServiceId=" + outServiceId + "," + "memo=" + memo + "}";
    }
}
